{
 "cells": [
  {
   "cell_type": "raw",
   "id": "67db2992",
   "metadata": {},
   "source": [
    "---\n",
    "sidebar_label: __ModuleName__\n",
    "---"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9597802c",
   "metadata": {},
   "source": [
    "# __ModuleName__LLM\n",
    "\n",
    "- [ ] TODO: Make sure API reference link is correct\n",
    "\n",
    "This will help you get started with __ModuleName__ completion models (LLMs) using LangChain. For detailed documentation on `__ModuleName__LLM` features and configuration options, please refer to the [API reference](https://api.python.langchain.com/en/latest/llms/__module_name__.llms.__ModuleName__LLM.html).\n",
    "\n",
    "## Overview\n",
    "### Integration details\n",
    "\n",
    "- TODO: Fill in table features.\n",
    "- TODO: Remove JS support link if not relevant, otherwise ensure link is correct.\n",
    "- TODO: Make sure API reference links are correct.\n",
    "\n",
    "| Class | Package | Local | Serializable | [JS support](https://js.langchain.com/docs/integrations/llms/__package_name_short_snake__) | Package downloads | Package latest |\n",
    "| :--- | :--- | :---: | :---: |  :---: | :---: | :---: |\n",
    "| [__ModuleName__LLM](https://api.python.langchain.com/en/latest/llms/__module_name__.llms.__ModuleName__LLM.html) | [__package_name__](https://api.python.langchain.com/en/latest/__package_name_short_snake___api_reference.html) | ✅/❌ | beta/❌ | ✅/❌ | ![PyPI - Downloads](https://img.shields.io/pypi/dm/__package_name__?style=flat-square&label=%20) | ![PyPI - Version](https://img.shields.io/pypi/v/__package_name__?style=flat-square&label=%20) |\n",
    "\n",
    "## Setup\n",
    "\n",
    "- TODO: Update with relevant info.\n",
    "\n",
    "To access __ModuleName__ models you'll need to create a/an __ModuleName__ account, get an API key, and install the `__package_name__` integration package.\n",
    "\n",
    "### Credentials\n",
    "\n",
    "- TODO: Update with relevant info.\n",
    "\n",
    "Head to (TODO: link) to sign up to __ModuleName__ and generate an API key. Once you've done this set the __MODULE_NAME___API_KEY environment variable:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "bc51e756",
   "metadata": {},
   "outputs": [],
   "source": [
    "import getpass\n",
    "import os\n",
    "\n",
    "if not os.getenv(\"__MODULE_NAME___API_KEY\"):\n",
    "    os.environ[\"__MODULE_NAME___API_KEY\"] = getpass.getpass(\n",
    "        \"Enter your __ModuleName__ API key: \"\n",
    "    )"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4b6e1ca6",
   "metadata": {},
   "source": "To enable automated tracing of your model calls, set your [LangSmith](https://docs.smith.langchain.com/) API key:"
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "196c2b41",
   "metadata": {},
   "outputs": [],
   "source": [
    "# os.environ[\"LANGSMITH_TRACING\"] = \"true\"\n",
    "# os.environ[\"LANGSMITH_API_KEY\"] = getpass.getpass(\"Enter your LangSmith API key: \")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "809c6577",
   "metadata": {},
   "source": [
    "### Installation\n",
    "\n",
    "The LangChain __ModuleName__ integration lives in the `__package_name__` package:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "59c710c4",
   "metadata": {},
   "outputs": [],
   "source": [
    "%pip install -qU __package_name__"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0a760037",
   "metadata": {},
   "source": [
    "## Instantiation\n",
    "\n",
    "Now we can instantiate our model object and generate chat completions:\n",
    "\n",
    "- TODO: Update model instantiation with relevant params."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a0562a13",
   "metadata": {},
   "outputs": [],
   "source": [
    "from __module_name__ import __ModuleName__LLM\n",
    "\n",
    "llm = __ModuleName__LLM(\n",
    "    model=\"model-name\",\n",
    "    temperature=0,\n",
    "    max_tokens=None,\n",
    "    timeout=None,\n",
    "    max_retries=2,\n",
    "    # other params...\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0ee90032",
   "metadata": {},
   "source": [
    "## Invocation\n",
    "\n",
    "- [ ] TODO: Run cells so output can be seen."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "035dea0f",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "input_text = \"__ModuleName__ is an AI company that \"\n",
    "\n",
    "completion = llm.invoke(input_text)\n",
    "completion"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "add38532",
   "metadata": {},
   "source": [
    "## Chaining\n",
    "\n",
    "We can [chain](/docs/how_to/sequence/) our completion model with a prompt template like so:\n",
    "\n",
    "- TODO: Run cells so output can be seen."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "078e9db2",
   "metadata": {},
   "outputs": [],
   "source": [
    "from langchain_core.prompts import PromptTemplate\n",
    "\n",
    "prompt = PromptTemplate(\"How to say {input} in {output_language}:\\n\")\n",
    "\n",
    "chain = prompt | llm\n",
    "chain.invoke(\n",
    "    {\n",
    "        \"output_language\": \"German\",\n",
    "        \"input\": \"I love programming.\",\n",
    "    }\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e99eef30",
   "metadata": {},
   "source": [
    "## TODO: Any functionality specific to this model provider\n",
    "\n",
    "E.g. creating/using finetuned models via this provider. Delete if not relevant"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e9bdfcef",
   "metadata": {},
   "source": [
    "## API reference\n",
    "\n",
    "For detailed documentation of all `__ModuleName__LLM` features and configurations head to the API reference: https://api.python.langchain.com/en/latest/llms/__module_name__.llms.__ModuleName__LLM.html"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3.11.1 64-bit",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  },
  "vscode": {
   "interpreter": {
    "hash": "e971737741ff4ec9aff7dc6155a1060a59a8a6d52c757dbbe66bf8ee389494b1"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
